---
title: Versioning
---

import AlphaCallout from '/snippets/alpha-lc-callout.mdx';

<AlphaCallout />

Each LangChain and LangGraph version number follows the format: `MAJOR.MINOR.PATCH`

- **Major**: Breaking API updates that require code changes.
- **Minor**: New features and improvements that maintain backward compatibility.
- **Patch**: Bug fixes and minor improvements.

## Version numbering

LangChain and LangGraph follow [Semantic Versioning](https://semver.org/) principles:

- **1.0.0**: First stable release with production-ready APIs
- **1.1.0**: New features added in a backward-compatible manner
- **1.0.1**: Backward-compatible bug fixes

## API stability

We communicate the stability of our APIs as follows:

### Stable APIs

All APIs without special prefixes are considered stable and ready for production use. We maintain backward compatibility for stable features and only introduce breaking changes in major releases.

### Beta APIs

APIs marked as `beta` are feature-complete but may undergo minor changes based on user feedback. They are safe for production use but may require small adjustments in future releases.

### Alpha APIs

APIs marked as `alpha` are experimental and subject to significant changes. Use these with caution in production environments.

### Deprecated APIs

APIs marked as `deprecated` will be removed in future major releases. When possible, we specify the intended version of removal. To handle deprecations:

1. Switch to the recommended alternative API
2. Follow the migration guide (released alongside major releases)
3. Use automated migration tools when available

### Internal APIs

Certain APIs are explicitly marked as "internal" in a couple of ways:

- Some documentation refers to internals and mentions them as such. If the documentation says that something is internal, it may change.
- Functions, methods, and other objects prefixed by a leading underscore (**`_`**). This is the standard Python convention of indicating that something is private; if any method starts with a single **`_`**, it's an internal API.
    - **Exception:** Certain methods are prefixed with `_` , but do not contain an implementation. These methods are *meant* to be overridden by sub-classes that provide the implementation. Such methods are generally part of the **Public API** of LangChain.

## Release cycles

### Major releases

Major releases (e.g., 1.0.0 → 2.0.0) may include:

- Breaking API changes
- Removal of deprecated features
- Significant architectural improvements

We provide:

- Detailed migration guides
- Automated migration tools when possible
- Extended support period for the previous major version

### Minor releases

Minor releases (e.g., 1.0.0 → 1.1.0) include:

- New features and capabilities
- Performance improvements
- New optional parameters
- Backward-compatible enhancements

### Patch releases

Patch releases (e.g., 1.0.0 → 1.0.1) include:

- Bug fixes
- Security updates
- Documentation improvements
- Performance optimizations without API changes

## Version support policy

- **Latest major version**: Full support with active development
- **Previous major version**: Security updates and critical bug fixes for 12 months after the next major release
- **Older versions**: Community support only

## Check your version

To check your installed version:

:::python
<CodeGroup>

```python LangChain
import langchain_core
print(langchain_core.__version__)
```

```python LangGraph
import langgraph
print(langgraph.__version__)
```

</CodeGroup>
:::

:::js
<CodeGroup>

```javascript LangChain
import { version } from "langchain/package.json";
console.log(version);
```

```javascript LangGraph
import { version } from "@langchain/langgraph/package.json";
console.log(version);
```
</CodeGroup>
:::

## Upgrade

:::python
<CodeGroup>

```bash LangChain
# Upgrade to the latest version
pip install -U langchain-core langchain

# Upgrade to a specific version
pip install langchain-core==1.0.0
```

```bash LangGraph
# Upgrade to the latest version
pip install -U langgraph

# Upgrade to a specific version
pip install langgraph==1.0.0
```
</CodeGroup>
:::

:::js
<CodeGroup>

```bash LangChain
# Upgrade to the latest version
npm update langchain @langchain/core

# Install a specific version
npm install langchain@1.0.0 @langchain/core@1.0.0
```

```bash LangGraph
# Upgrade to the latest version
npm update @langchain/langgraph

# Install a specific version
npm install @langchain/langgraph@1.0.0
```
</CodeGroup>
:::

## Pre-release versions

We occasionally release alpha and beta versions for early testing:

- **Alpha** (e.g., 1.0.0a1): Early preview, significant changes expected
- **Beta** (e.g., 1.0.0b1): Feature-complete, minor changes possible
- **Release Candidate** (e.g., 1.0.0rc1): Final testing before stable release

To install pre-release versions:

:::python
<CodeGroup>
    ```bash LangChain
    pip install --pre langchain-core
    ```

    ```bash LangGraph
    pip install --pre langgraph
    ```
</CodeGroup>
:::

:::js
<CodeGroup>
    ```bash LangChain
    npm install langchain@next
    ```

    ```bash LangGraph
    npm install @langchain/langgraph@next
    ```
</CodeGroup>
:::

## See also

- [Release policy](/oss/release-policy) - Detailed release and deprecation policies
- [Releases](/oss/releases) - Version-specific release notes and migration guides
